package com.tiger.project.domain;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tiger.common.annotation.Excel;
import com.tiger.common.core.domain.BaseEntity;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;


/**
 * 【项目验收】对象 project_acceptance
 *
 * @author standard
 * @date 2022-09-19
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "project_acceptance对象", description = "【项目验收】内容")
public class ProjectAcceptance extends BaseEntity {
private static final long serialVersionUID = 1L;

        /** ID */
        private Long id;

        /** 合同id */
        @Excel(name = "合同id")
        @ApiModelProperty(value = "合同id")
        private Long contractId;

        /** 实际开工日期 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "实际开工日期", width = 30, dateFormat = "yyyy-MM-dd")
        @ApiModelProperty(value = "实际开工日期")
        private Date startAt;

        /** 实际竣工日期 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "实际竣工日期", width = 30, dateFormat = "yyyy-MM-dd")
        @ApiModelProperty(value = "实际竣工日期")
        private Date endAt;

        /** 项目经理 */
        @Excel(name = "项目经理")
        @ApiModelProperty(value = "项目经理")
        private String projectManager;

        /** 1-待验收，2-未提交，3-审核中，4-审核通过，5-已退回 */
        @Excel(name = "1-待验收，2-未提交，3-审核中，4-审核通过，5-已退回")
        @ApiModelProperty(value = "1-待验收，2-未提交，3-审核中，4-审核通过，5-已退回")
        private Long status;

        /** 验收结果 */
        @Excel(name = "验收结果")
        @ApiModelProperty(value = "oa返回 验收结果")
        private String result;

        /** 删除标志 1-是，0-否 */
        @Excel(name = "删除标志 1-是，0-否")
        @ApiModelProperty(value = "删除标志 1-是，0-否")
        private Long isDeleted;

        /** 创建时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
        @ApiModelProperty(value = "创建时间")
        private Date createdAt;

        /** 更新时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
        @ApiModelProperty(value = "更新时间")
        private Date updatedAt;

        /** 验收日期 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "验收日期", width = 30, dateFormat = "yyyy-MM-dd")
        @ApiModelProperty(value = "验收日期")
        private Date acceptedAt;

        /** 创建人 */
        @Excel(name = "创建人")
        @ApiModelProperty(value = "创建人")
        private Long createById;

        /** 创建人名称 */
        @Excel(name = "创建人名称")
        @ApiModelProperty(value = "创建人名称")
        private String createByName;

        /** 更新人 */
        @Excel(name = "更新人")
        @ApiModelProperty(value = "更新人")
        private Long updateById;

        /** 更新人名称 */
        @Excel(name = "更新人名称")
        @ApiModelProperty(value = "更新人名称")
        private String updateByName;

        /** 租户id(0--平台用户 非0--正常租户) */
        @Excel(name = "租户id(0--平台用户 非0--正常租户)")
        @ApiModelProperty(value = "租户id(0--平台用户 非0--正常租户)")
        private Long tenantId;

        /** 合同编号 */
        @Excel(name = "合同编号")
        @ApiModelProperty(value = "合同编号")
        private String contractNo;

        /** 工程名称 */
        @Excel(name = "工程名称")
        @ApiModelProperty(value = "工程名称")
        private String name;

        /** 合同总金额 */
        @Excel(name = "合同总金额")
        @ApiModelProperty(value = "合同总金额")
        private BigDecimal totalAmount;

        @ApiModelProperty(value = "公司id")
        private Long companyId;

        @ApiModelProperty(value = "监理单位id")
        private Long supervisorId;

        @ApiModelProperty(value = "监理单位名称")
        private String supervisorName;

        @ApiModelProperty(value = "附件集合")
        private List<ProjectAcceptanceEnclosure> enclosureList = new ArrayList<>();

        @ApiModelProperty(value = "联系人集合")
        private List<ProjectAcceptanceLinkman> linkmanList = new ArrayList<>();

        @ApiModelProperty(value = "合同")
        private List<Contract> contractList = new ArrayList<>();

        @ApiModelProperty(value = "1-升序 2-倒叙")
        private Long rank;

        @ApiModelProperty(value = "OA审核链接")
        private String oaFile;

        @ApiModelProperty("OA的token")
        private String token;

        @ApiModelProperty("OA的loginName")
        private String loginName;


}
